decrement('stock_quantity', $data['quantity']); // 3️⃣ Log stock movement Stock::create([ 'restaurant_id' => $data['restaurant_id'], 'ingredient_id' => $data['ingredient_id'], 'type' => 'damage', 'quantity' => $data['quantity'], 'unit_cost' => $data['unit_cost'] ?? null, 'total_cost' => isset($data['unit_cost']) ? $data['unit_cost'] * $data['quantity'] : null, 'reference_type' => 'IngredientDamage', 'purchase_id' => $data['purchase_id'], 'batch_no' => $data['batch_no'] ?? null, 'expiry_date' => null, 'added_by' => $data['reported_by'] ?? auth()->id(), 'remarks' => $data['reason'] ?? 'Ingredient damage', ]); DB::commit(); return $damage; } catch (\Exception $e) { DB::rollBack(); throw $e; } } }