*/ use HasFactory, Notifiable; protected static function boot() { parent::boot(); static::creating(function ($user) { if (empty($user->uuid)) { $user->uuid = Str::uuid(); } }); } /** * The attributes that are mass assignable. * * @var list */ protected $fillable = [ 'name', 'email', 'password', 'avatar', 'preferred_username', 'is_admin', 'auto_approve_apps', 'uuid' ]; /** * The attributes that should be hidden for serialization. * * @var list */ protected $hidden = [ 'password', 'remember_token', ]; /** * Get the attributes that should be cast. * * @return array */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', 'is_admin' => 'boolean', 'auto_approve_apps' => 'boolean', ]; } /** * Get the user's initials */ public function initials(): string { return Str::of($this->name) ->explode(' ') ->take(2) ->map(fn($word) => Str::substr($word, 0, 1)) ->implode(''); } public function tokens(): HasMany { return $this->hasMany(AuthenticationToken::class); } public function avatarUrl() { return route('user.avatar', ['path' => $this->avatar]); } public function isAdmin(): bool { return $this->is_admin; } }