diff --git a/src/functions_laravel.php b/src/functions_laravel.php index 23d4c21..0552e26 100644 --- a/src/functions_laravel.php +++ b/src/functions_laravel.php @@ -66,9 +66,13 @@ function authenticated(): Closure }; } -function can(string $ability): Closure +function can(string $ability, ...$args): Closure { - return function ($arg) use ($ability) { - return Gate::allows($ability, $arg instanceof Model ? $arg : null); + return function ($arg) use ($ability, $args) { + if ($arg instanceof Model) { + array_unshift($args, $arg); + } + + return Gate::allows($ability, $args); }; }