updateNativeAmount($budgetLimit); } private function updateNativeAmount(BudgetLimit $budgetLimit): void { if (!Amount::convertToNative($budgetLimit->budget->user)) { // Log::debug('Do not update native amount of the budget limit.'); return; } $userCurrency = app('amount')->getPrimaryCurrencyByUserGroup($budgetLimit->budget->user->userGroup); $budgetLimit->native_amount = null; if ($budgetLimit->transactionCurrency->id !== $userCurrency->id) { $converter = new ExchangeRateConverter(); $converter->setUserGroup($budgetLimit->budget->user->userGroup); $converter->setIgnoreSettings(true); $budgetLimit->native_amount = $converter->convert($budgetLimit->transactionCurrency, $userCurrency, today(), $budgetLimit->amount); } $budgetLimit->saveQuietly(); Log::debug('Budget limit native amounts are updated.'); } public function updated(BudgetLimit $budgetLimit): void { Log::debug('Observe "updated" of a budget limit.'); $this->updateNativeAmount($budgetLimit); } }