$attributes * @param array> $taxes */ public function create(array $attributes, array $taxes, int $companyId, int $creatorId): Item { $attributes['company_id'] = $companyId; $attributes['creator_id'] = $creatorId; $attributes['currency_id'] = CompanySetting::getSetting('currency', $companyId); $item = Item::create($attributes); $this->itemTaxManager->attach($item, $taxes, $companyId); return Item::query()->with('taxes')->findOrFail($item->getKey()); } /** * @param array $attributes * @param array> $taxes */ public function update(Item $item, array $attributes, array $taxes, int $companyId): Item { $item->update($attributes); $this->itemTaxManager->replace($item, $taxes, $companyId); return Item::query()->with('taxes')->findOrFail($item->getKey()); } }