'immutable_datetime']; /** * @param Builder $query * @return Builder */ public function scopeAvailableForWork(Builder $query): Builder { $query->whereNull('tasks.deleted_at')->whereIn('tasks.status', ['open', 'in_progress']); if (Schema::hasColumn('tasks', 'desk_case_id')) { if (Schema::hasColumn('desk_cases', 'closed_at')) { $query->where(fn ($q) => $q->whereNull('tasks.desk_case_id')->orWhereExists(fn ($desk) => $desk->selectRaw('1')->from('desk_cases') ->whereColumn('desk_cases.id', 'tasks.desk_case_id')->whereNull('desk_cases.closed_at'))); } else { $query->whereNull('tasks.desk_case_id'); } } return $query; } }