'date', 'total_price' => 'integer', ]; protected static function boot() { parent::boot(); static::deleted(function ($feedPurchase) { $feedPurchase->revertFeedStock(); }); static::forceDeleted(function ($feedPurchase) { $feedPurchase->revertFeedStock(); }); static::restored(function ($feedPurchase) { $feedPurchase->updateFeedStock(); }); } public function items(): HasMany { return $this->hasMany(FeedPurchaseItem::class); } public function updateFeedStock(): void { foreach ($this->items as $item) { $feed = $item->feed; if ($feed) { $feed->increment('stock', $item->quantity); } } } public function revertFeedStock(): void { foreach ($this->items as $item) { $feed = $item->feed; if ($feed) { $feed->decrement('stock', $item->quantity); } } } }