*/ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; protected static function booted(): void { if (config('filament-shield.dashboard_user.enabled', false)) { FilamentShield::createRole(name: config('filament-shield.dashboard_user.name', 'dashboard_user')); FilamentShield::createRole(name: config('', 'editor')); static::created(function (User $user) { $user->assignRole(config('filament-shield.dashboard_user.name', 'dashboard_user')); }); static::deleting(function (User $user) { $user->assignRole(config('filament-shield.dashboard_user.name', 'dashboard_user')); }); } } public function canAccessPanel(Panel|\Filament\Panel $panel): bool { return match ($panel->getId()) { "admin" => $this->hasRole(Utils::getSuperAdminName()), "dashboard" => $this->hasRole(config('filament-shield.dashboard_user.name', 'dashboard_user')) || $this->hasRole(Utils::getSuperAdminName()) || $this->hasRole(config('filament-shield.invited_user.name', 'invited_user')), default => false, }; } }