carts()->active()->sole(); $productInCart = $cart->products()->find($cartData->productId); throw_if($productInCart === null, new InvalidArgumentException('Product not found')); $cart->products()->updateExistingPivot($cartData->productId, [ 'quantity' => $cartData->quantity, ]); return CartDTO::fromModel($cart->load(['products' => function ($query) { $query->withPivot('quantity', 'price'); }])); } }