$this->uuid, 'db_id' => $this->id, 'name' => $this->name, 'status' => $this->status, 'area' => ServiceAreaResource::make($this->whenLoaded('area')), 'driver' => UserResource::make($this->whenLoaded('driver')), 'scanner' => UserResource::make($this->whenLoaded('scanner')), 'truck' => TruckResource::make($this->whenLoaded('truck')), 'helpers' => $this->whenLoaded('helpers', fn () => $this->helpers->map(fn ($m) => [ 'id' => $m->user?->uuid, 'db_id' => $m->user?->id, 'name' => $m->user?->full_name, 'assigned_from' => $m->assigned_from?->toDateString(), 'assigned_until' => $m->assigned_until?->toDateString(), 'status' => $m->status, ])), 'is_full' => $this->is_full, 'truck_is_full' => $this->whenLoaded('currentTrip', function () { $trip = $this->currentTrip; if (! $trip) { return false; } $atDumpsite = $trip->status === Trip::STATUS_AT_DUMPSITE; $atCapacity = $this->truck?->capacity_kg > 0 && $trip->total_load_kg >= $this->truck->capacity_kg; return $atDumpsite || $atCapacity; }, false), 'performance_stats' => $this->getPerformanceStats(), 'current_trip' => TripResource::make($this->whenLoaded('currentTrip')), 'notes' => $this->notes, 'created_at' => $this->created_at?->toIso8601String(), ]; } }