diff --git a/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php b/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php index a67fe899bad4..df69409ec835 100644 --- a/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php +++ b/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php @@ -40,8 +40,8 @@ public static function resolveGlobalScopeAttributes() /** * Register a new global scope on the model. * - * @param \Illuminate\Database\Eloquent\Scope|\Closure|string $scope - * @param \Illuminate\Database\Eloquent\Scope|\Closure|null $implementation + * @param \Illuminate\Database\Eloquent\Scope|(\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string $scope + * @param \Illuminate\Database\Eloquent\Scope|(\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $implementation * @return mixed * * @throws \InvalidArgumentException @@ -93,7 +93,7 @@ public static function hasGlobalScope($scope) * Get a global scope registered with the model. * * @param \Illuminate\Database\Eloquent\Scope|string $scope - * @return \Illuminate\Database\Eloquent\Scope|\Closure|null + * @return \Illuminate\Database\Eloquent\Scope|(\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null */ public static function getGlobalScope($scope) { diff --git a/types/Database/Eloquent/Model.php b/types/Database/Eloquent/Model.php index 3c9be34c4b11..663ec93bea21 100644 --- a/types/Database/Eloquent/Model.php +++ b/types/Database/Eloquent/Model.php @@ -25,6 +25,12 @@ function test(User $user, Post $post, Comment $comment, Article $article): void return ['string' => 'string']; })); + User::addGlobalScope('ancient', function ($builder) { + assertType('Illuminate\Database\Eloquent\Builder', $builder); + + $builder->where('created_at', '<', now()->subYears(2000)); + }); + assertType('Illuminate\Database\Eloquent\Builder', User::query()); assertType('Illuminate\Database\Eloquent\Builder', $user->newQuery()); assertType('Illuminate\Database\Eloquent\Builder', $user->withTrashed());