*/ use HasFactory; use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', 'capabilities', 'is_active', 'last_login_at', ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * @return array */ protected function casts(): array { return [ 'capabilities' => 'array', 'is_active' => 'boolean', 'last_login_at' => 'datetime', 'password' => 'hashed', ]; } public function canAccessPanel(Panel $panel): bool { return $panel->getId() === 'system'; } public function hasCapability(string $capability): bool { $capability = trim($capability); if ($capability === '') { return false; } $capabilities = $this->capabilities; if (! is_array($capabilities)) { return false; } return in_array($capability, $capabilities, true); } }