hasAnyRole(['admin', 'supervisor', 'agent']); } public function view(User $user, Campaign $campaign): bool { return AccessControl::canAccessCampaign($user, $campaign); } public function create(User $user): bool { return $user->hasRole('admin') || $user->can('manage_campaigns'); } public function update(User $user, Campaign $campaign): bool { return AccessControl::canAccessCampaign($user, $campaign) && ($user->hasRole('admin') || $user->can('manage_campaigns')); } public function delete(User $user, Campaign $campaign): bool { return $this->update($user, $campaign); } }