Корзина на сессиях Laravel
Нужно передать в сессию корзины id + выбранное кол-во. При этом если в сессии есть уже есть id который передаю, нужно ему увеличить qty которое передаю. Делаю вот так, но почему то создаются новые массивы, а на третье добавление получаю ошибку
public function add(Request $request)
{
$cart_array = Session::get('products-cart');
$cart = collect($cart_array);
if (!$cart->has(['id' => $request->product_id])) {
$cart->push(['id' => $request->product_id, 'count' => $request->product_qty]);
}
else{
$cart = $cart->map(function(&$item) use ($request) {
if ($item['id'] === $request->product_id) {
$item['count'] += $request->product_qty ?? 1;
}
return $item;
});
}
Session::push('products-cart', $cart->toArray());
return redirect()->back();
}