hasRole('admin') ? true : null; } public function viewAny(User $user): bool { return $user->can('view_quality_reviews'); } public function view(User $user, QualityReview $review): bool { if ($user->hasRole('agent')) { return $review->agent_id === $user->id && $review->is_shared_with_agent; } return $user->can('view_quality_reviews') && AccessControl::canAccessCall($user, $review->call); } public function create(User $user, Call $call): bool { return $user->hasRole('supervisor') && $user->can('create_quality_reviews') && AccessControl::canAccessCall($user, $call); } public function update(User $user, QualityReview $review): bool { return $user->hasRole('supervisor') && $user->can('create_quality_reviews') && $review->reviewer_id === $user->id && AccessControl::canAccessCall($user, $review->call); } }