Я обнаружил, что это из-за типа входной переменной в политике.Я добавил класс пользователя в AuthServiceProvider:
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
User::class => UserPolicy::class,
];
Затем я определил функцию в UserPolicy:
public function modifyPlayerTournamentRegistration(User $user, User $player)
{
return $player->id === $user->id || $user->inRole('admin');
}
И использовал ее в контроллере:
$this->authorize('modifyTournamentRegistration', $player);
Itработает так же:)