statusContextQuery($project, $boardColumnId)->count() + 1; } private function normalizeStatusPositions(Project $project, ?int $boardColumnId): void { $this->statusContextQuery($project, $boardColumnId) ->get() ->values() ->each(function (TicketStatus $ticketStatus, int $index): void { $ticketStatus->forceFill([ 'position' => $index + 1, ])->saveQuietly(); }); } private function statusContextLabel(TicketStatus $ticketStatus): string { return $ticketStatus->boardColumn?->name ?? 'Backlog'; } private function statusContextQuery(Project $project, ?int $boardColumnId): HasMany { return $project->ticketStatuses() ->when( $boardColumnId === null, fn ($query) => $query->whereNull('board_column_id'), fn ($query) => $query->where('board_column_id', $boardColumnId), ); } }