policies = [ 'ticket' => [ 'viewAny' => URR::make('allowEveryOne'), 'view' => URR::make('allowEveryOne'), 'create' => URR::make('allowEveryOne'), 'update' => StaticRules::or([ URR::make('userIsAdmin', $user), SSR::make('userSitesHasTicket', $user, $model) ]), 'changeStatus' => URR::make('userIsAdmin', $user), 'delete' => URR::make('denyEveryOne'), 'forceDelete' => URR::make('denyEveryOne'), 'restore' => StaticRules::or([ URR::make('userIsAdmin', $user), SSR::make('userSitesHasTicket', $user, $model) ]), 'suscribeToTicket' => TicketStaticRules::make('ticketIsNotArchived', $model), 'createMessage' => StaticRules::or([ StaticRules::or([ URR::make('userIsAdmin', $user), SSR::make('userSitesHasTicket', $user, $model) ]), StaticRules::and([ TicketStaticRules::make('ticketIsNotArchived', $model), SSR::make('userSitesHasTicket', $user, $model) ]) ]) ] ]; } }