authorizeAexAccess('aex.pipeline.view'); $business_id = $this->aexUtil->getBusinessId(); $listings = Listing::where('business_id', $business_id) ->whereNotIn('status', ['withdrawn']) ->with(['seller:id,name', 'broker:id,first_name,last_name,surname']) ->orderByDesc('updated_at') ->limit(200) ->get(); $board = []; foreach (PipelineService::STAGES as $stage) { $board[$stage] = [ 'label' => PipelineService::STAGE_LABELS[$stage] ?? $stage, 'listings' => [], ]; } foreach ($listings as $listing) { $pipeline = $this->pipelineService->getPipelineForListing($listing); $stage = $pipeline['current_stage'] ?? 'draft_listing'; if (! isset($board[$stage])) { $stage = 'draft_listing'; } $board[$stage]['listings'][] = [ 'listing' => $listing, 'pipeline' => $pipeline, ]; } return view('assetexchange::pipeline.index', compact('board')); } }