isProduction()) { $this->error('cart:debug is not available in production.'); return self::FAILURE; } $cart = app('cart'); $data = static::debugData($cart); $this->info('Cart Debug'); $this->line(''); $this->line(" Driver: {$data['driver']}"); $this->line(" Items: {$data['item_count']}"); $this->line(" Total Quantity: {$data['total_quantity']}"); $this->line(" Subtotal: {$data['subtotal']}"); $this->line(" Total: {$data['total']}"); if (! empty($data['conditions'])) { $this->line(" Conditions: " . implode(', ', $data['conditions']) . ''); } else { $this->line(' Conditions: none'); } if (! empty($data['items'])) { $this->line(''); $this->table(['ID', 'Name', 'Price', 'Qty'], $data['items']); } return self::SUCCESS; } public static function debugData(Cart $cart): array { $items = $cart->getContent(); return [ 'driver' => $cart->getDriver()->getDriverName(), 'item_count' => $items->count(), 'total_quantity' => (int) $cart->getTotalQuantity(), 'subtotal' => (float) $cart->getSubTotal(false), 'total' => (float) $cart->getTotal(), 'conditions' => $cart->getConditions()->map(fn($c) => $c->getName())->values()->toArray(), 'items' => $items->map(fn($item) => [ $item->id, $item->name, $item->price, $item->quantity, ])->values()->toArray(), ]; } }