*/ use HasFactory, Notifiable, TwoFactorAuthenticatable, HasRoles; /** * The attributes that are mass assignable. * * @var list */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for serialization. * * @var list */ protected $hidden = [ 'password', 'two_factor_secret', 'two_factor_recovery_codes', 'remember_token', ]; /** * Get the attributes that should be cast. * * @return array */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } /** * 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(''); } protected static function booted() { static::created(function ($user) { // Cari role guest, jika tidak ada maka buat otomatis $role = Role::firstOrCreate(['name' => 'guest', 'guard_name' => 'web']); // Berikan role tersebut ke user baru $user->assignRole($role); }); } public function patient() { return $this->hasOne(Patient::class, 'user_id', 'id'); } }