Я думаю, что ваш подход к извлечению продукта не самый лучший.
Чтобы получить продукт, вы должны использовать этот подход:
$product = Product::find($cart->product_id);
А для получения запаса необходимо:
$product_stock = $product->getProductStock($product->id, $cart->size);