updateNativeAmount($availableBudget); } public function created(AvailableBudget $availableBudget): void { Log::debug('Observe "created" of an available budget.'); $this->updateNativeAmount($availableBudget); } private function updateNativeAmount(AvailableBudget $availableBudget): void { $userCurrency = app('amount')->getDefaultCurrencyByUserGroup($availableBudget->user->userGroup); $availableBudget->native_amount = null; if ($availableBudget->transactionCurrency->id !== $userCurrency->id) { $converter = new ExchangeRateConverter(); $converter->setIgnoreSettings(true); $availableBudget->native_amount = $converter->convert($availableBudget->transactionCurrency, $userCurrency, today(), $availableBudget->amount); } $availableBudget->saveQuietly(); Log::debug('Available budget native amount is updated.'); } }