'int', 'role' => AdminRole::class, 'status' => AdminStatus::class, 'last_login_at' => 'datetime' ]; protected $hidden = [ 'password' ]; protected $fillable = [ 'first_name', 'last_name', 'username', 'email', 'mobile', 'password', 'file_id', 'role', 'status', 'last_login_at' ]; public function file() { return $this->belongsTo(File::class); } public function comments() { return $this->hasMany(Comment::class); } public function permissions() { return $this->hasMany(AdminPermission::class); } public function avatar() { return $this->hasOne(AdminAvatar::class); } public function isSuperAdmin(): bool { return $this->role === \App\Enums\Admin\AdminRole::SUPERADMIN; } public function canAccess(string $permission): bool { if ($this->isSuperAdmin()) { return true; } return $this->permissions() ->where('permission', $permission) ->exists(); } }