belongsToMany(Role::class, 'admin_roles', 'user_id', 'role_id'); } public function hasRole($role) { return $this->roles()->where('name', $role)->exists(); } public function getJWTIdentifier() { return $this->getKey(); } public function getJWTCustomClaims() { return []; } public function hasAnyRole($roles) { return $this->roles()->whereIn('name', (array)$roles)->exists(); } public function hasPermission($permission) { return $this->permissions()->contains('slug', $permission); } public function isPermission($permission) { $permissions = $this->permissions(); return in_array($permission, array_column($permissions->toArray(), 'slug')); } public function permissions() { return $this->roles() ->with('permissions') ->get() ->pluck('permissions') ->flatten() ->unique('id'); } }