Le Gate Laravel se comporte différemment selon que le 1er argument est
une classe string ou une instance :
- [Releve::class, $source] → Gate passe $source directement (vue + contrôleurs)
- [app(Releve::class), $source] → Gate injecte l'instance + $source (ancien StoreReleveRequest)
Correction : revenir aux signatures originales (User, Source) et remplacer
app(Releve::class) par Releve::class dans StoreReleveRequest pour uniformiser.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
authorize('create', [Releve::class, $source]) injecte une instance Releve
comme 2e argument avant $source — la policy recevait un Releve là où elle
attendait un Source (TypeError). Ajout du paramètre Releve $releve manquant
dans viewAny() et create() ; update() adapté en conséquence.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>