'datetime', 'last_login_at' => 'datetime', 'is_active' => 'boolean', 'mfa_enabled' => 'boolean', 'mfa_recovery_codes' => 'encrypted:array', 'mfa_secret' => 'encrypted', 'preferences' => 'array', 'password' => 'hashed', ]; public function getAvatarUrlAttribute(): string { if ($this->avatar) { return asset('storage/' . $this->avatar); } $hash = md5(strtolower(trim($this->email))); return "https://www.gravatar.com/avatar/{$hash}?d=identicon&s=128"; } public function isLdapUser(): bool { return $this->auth_source === 'ldap'; } public function passwordEntries() { return $this->hasMany(PasswordEntry::class); } }