authorizeTmsAccess('tms.shipments.view'); $business_id = $this->tmsUtil->getBusinessId(); $statuses = $this->tmsUtil->shipmentStatuses(); $shipments = Shipment::where('business_id', $business_id) ->where('contact_id', $contact_id) ->with(['driver:id,name', 'vehicle:id,plate_number']) ->orderByDesc('created_at') ->limit(50) ->get() ->map(function ($s) use ($statuses) { return [ 'id' => $s->id, 'ref_no' => $s->ref_no, 'status' => $statuses[$s->status] ?? $s->status, 'driver' => $s->driver?->name, 'vehicle' => $s->vehicle?->plate_number, 'scheduled_at' => $s->scheduled_at?->format('Y-m-d H:i'), 'url' => action([ShipmentController::class, 'show'], [$s->id]), ]; }); return response()->json(['success' => true, 'data' => $shipments]); } }