*/ use HasFactory, Notifiable, HasRoles, AuthenticatesWithLdap, HasLdapUser; /** * @var list */ protected $fillable = [ 'name', 'email', 'password', 'username', 'phone', 'department', 'title', 'ldap_guid', 'ldap_domain', ]; /** * @var list */ protected $hidden = [ 'password', 'remember_token', ]; protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } public function initials(): string { return Str::of($this->name) ->explode(' ') ->take(2) ->map(fn ($word) => Str::substr($word, 0, 1)) ->implode(''); } public function canAccessPanel(Panel $panel): bool { return $this->hasRole('administrator'); } public function emergencyContacts(): HasMany { return $this->hasMany(EmergencyContact::class); } public function travelRequests(): HasMany { return $this->hasMany(TravelRequest::class); } }