belongsToMany(Role::class, 'user_roles', 'user_id', 'role_id'); } public function isAn(...$roles): bool { return $this->roles()->whereIn('name', $roles)->exists(); } public function scopeFilterSuperadmin(Builder $query) { if(!auth()->check()) { return; } if (!auth()->user()->isAn(RoleName::SuperAdmin)) { $query->whereDoesntHave('roles', function (Builder $builder) { $builder->where('name', RoleName::SuperAdmin); }); } } protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } }