runningInConsole()) { return $builder; } $user = optional(request())->user(); throw_unless($user, new AuthorizationException); if ($user->hasRole([Role::ADMIN, Role::MANAGER, Role::AUDITOR])) { return $builder; } return $builder ->where('time_intervals.user_id', $user->id) ->orWhereHas('task.project.users', static fn(Builder $builder) => $builder ->where('projects_users.user_id', $user->id) ->where('projects_users.role_id', Role::MANAGER->value)) ->orWhereHas('task.project.users', static fn(Builder $builder) => $builder ->where('projects_users.user_id', $user->id) ->where('projects_users.role_id', Role::AUDITOR->value)); } }