cart = FeedPurchaseItem::whereNull('feed_purchase_id') ->get() ->pluck('quantity', 'feed_id') ->map(fn ($qty) => ['qty' => (int) $qty]) ->toArray(); } public function addFeed(int $feedId): void { $feed = Feed::find($feedId); if (! $feed) { return; } $item = FeedPurchaseItem::whereNull('feed_purchase_id') ->where('feed_id', $feedId) ->first(); if ($item) { $item->increment('quantity', 1); $item->update(['subtotal' => $item->quantity * $item->unit_price]); } else { FeedPurchaseItem::create([ 'feed_purchase_id' => null, 'feed_id' => $feedId, 'quantity' => 1, 'unit_price' => $feed->price, 'subtotal' => $feed->price, ]); } $this->loadCartFromDb(); $this->dispatch('cart-updated'); } public function decreaseQty(int $feedId): void { $item = FeedPurchaseItem::whereNull('feed_purchase_id') ->where('feed_id', $feedId) ->first(); if ($item) { if ($item->quantity > 1) { $item->decrement('quantity', 1); $item->update(['subtotal' => $item->quantity * $item->unit_price]); } else { $item->delete(); } $this->loadCartFromDb(); $this->dispatch('cart-updated'); } } public function removeCartItem(int $itemId): void { FeedPurchaseItem::where('id', $itemId)->whereNull('feed_purchase_id')->delete(); $this->loadCartFromDb(); $this->dispatch('cart-updated'); } }