@prasinoulhs When I use Session::put('cart', $item) and add one item at a time, the added item replaces the previous one - so there is no an array of items but only one item stored in the session.
if you want to add multiple items you either call push for each one, or get the items from the session merge them with the new items and put them back.
@minjon when you use LARAVEL you already think with other person's head... so i suggest you use pure PHP (Which again is thinking with someone's head)..
most packages are stable, have documentation & using them should cut down the amount of time it takes for you to create something rather then you inventing your own untested solution!..