increment('stock_quantity',$quantity); InventoryMovement::create(['product_id'=>$product->id,'quantity'=>$quantity,'reason'=>$reason,'created_by'=>$userId]); }); } public function available(Product $product): int { return max(0,(int)$product->stock_quantity); } }