Já existiam VenuePolicy/CourtPolicy e permissões (venue.*) para a gestão de arenas e quadras, mas ainda não havia rotas/telas no app principal usando essas regras. Isso deixava o sistema vulnerável a:
authorize() consistente.role e, dentro das telas, aplicar authorize() baseado nas Policies.@role, @canany).Nota: o papel staff ainda não possui um modelo de vínculo/escopo por arena (membership). Portanto, as telas foram limitadas a venue_owner|super_admin por enquanto para manter a regra “correto > fácil”.
GET /venuesGET /venues/{venue}/courtssail bin pintsail bin phpstan analysesail artisan testvenues.index, venues.courtsApp\Livewire\Venue\MyVenuesApp\Livewire\Venue\ManageCourts