diff --git a/src/Traits/HasRoles.php b/src/Traits/HasRoles.php index bdf13c53..74f74ae4 100644 --- a/src/Traits/HasRoles.php +++ b/src/Traits/HasRoles.php @@ -56,7 +56,7 @@ public function roles(): MorphToMany * * @return \Illuminate\Database\Eloquent\Builder */ - public function scopeRole(Builder $query, $roles): Builder + public function scopeRole(Builder $query, $roles, $guard = null): Builder { if ($roles instanceof Collection) { $roles = $roles->all(); @@ -66,14 +66,15 @@ public function scopeRole(Builder $query, $roles): Builder $roles = [$roles]; } - $roles = array_map(function ($role) { + $roles = array_map(function ($role) use ($guard) { if ($role instanceof Role) { return $role; } $method = is_numeric($role) ? 'findById' : 'findByName'; + $guard = $guard ?: $this->getDefaultGuardName(); - return $this->getRoleClass()->{$method}($role, $this->getDefaultGuardName()); + return $this->getRoleClass()->{$method}($role, $guard); }, $roles); return $query->whereHas('roles', function ($query) use ($roles) {