runningInConsole()) { return $builder; } $user = optional(request())->user(); throw_unless($user, new AuthorizationException); if (!$user || $user->hasRole([Role::ADMIN, Role::MANAGER, Role::AUDITOR])) { return $builder; } return $builder // A user with the user project role sees only their own tasks ->whereHas('users', static fn(Builder $builder) => $builder->where('id', $user->id)) ->orWhereHas('project.users', static fn(Builder $builder) => $builder ->where('user_id', $user->id) ->whereIn( 'projects_users.role_id', [ Role::MANAGER->value, Role::USER->value, Role::AUDITOR->value, ], )) ->orderBy('created_at', 'desc'); } }