## Traits

LAP comes with a few different traits which allow for extended functionality.

### AdminUser

This contains the relationship methods for roles, permissions, and activity logs. It also contains the methods used by `Gate` to ensure that the user has permission to do things. This trait must be applied to your `User` model.

### DynamicFillable

This trait will automatically set the `$fillable` model property by using its database table column names. This trait should be used by any model you don't want to have to manually enter `$fillable` for.

### UserTimezone

This trait will convert common model date columns (such as `created_at`, `updated_at`, and `deleted_at`) from `config('app.timezone')` into the currently logged in users timezone. User timezones are automatically set when they log in, so this trait is essential for showing them the correct time.

You can also specify your own accessors for custom date attributes by utilizing the `inUserTimezone()` method within this trait:

    public function getCustomAtAttribute($value)
    {
        return $this->inUserTimezone($value);
    }