hasMany(OrderItem::class); } // Link using mark_no (optional) public function markList() { return $this->hasOne(MarkList::class, 'mark_no', 'mark_no'); } public function entries() { return $this->belongsToMany(Entry::class, 'entry_order', 'order_id', 'entry_id') ->withTimestamps(); } public function shipmentItems() { return $this->hasMany(\App\Models\ShipmentItem::class, 'order_id', 'id'); } public function shipments() { return $this->belongsToMany(\App\Models\Shipment::class, 'shipment_items', 'order_id', 'shipment_id'); } public function invoice() { return $this->hasOne(\App\Models\Invoice::class, 'order_id', 'id'); } const STATUS_LABELS = [ 'order_placed' => 'Order Placed', 'order_confirmed' => 'Order Confirmed', 'supplier_warehouse' => 'Supplier Warehouse', 'consolidate_warehouse'=> 'Consolidate Warehouse', 'export_custom' => 'Export Custom', 'international_transit'=> 'International Transit', 'arrived_india' => 'Arrived at India', 'import_custom' => 'Import Custom', 'warehouse' => 'Warehouse', 'domestic_distribution'=> 'Domestic Distribution', 'out_for_delivery' => 'Out for Delivery', 'delivered' => 'Delivered', ]; public function getStatusLabelAttribute() { return self::STATUS_LABELS[$this->status] ?? ucfirst(str_replace('_', ' ', $this->status)); } }