currency; if (bccomp((string) $defaultCurrency->rate, '1.0', 8) !== 0) { $defaultCurrency->update(['rate' => 1]); } $this->updateOtherCurrencyRates($defaultCurrency); }); } private function updateOtherCurrencyRates(Currency $defaultCurrency): void { $targetCurrencies = Currency::where('code', '!=', $defaultCurrency->code) ->pluck('code') ->toArray(); $exchangeRates = $this->currencyService->getCachedExchangeRates($defaultCurrency->code, $targetCurrencies); foreach ($exchangeRates as $currencyCode => $newRate) { $currency = Currency::where('code', $currencyCode)->first(); if ($currency && bccomp((string) $currency->rate, (string) $newRate, 8) !== 0) { $currency->update(['rate' => $newRate]); } } } }