! isset(self::$currencyCache[$id]) && $id !== null); if (empty($missingIds)) { return; } /** @var BankAccount[] $accounts */ $accounts = BankAccount::with('account') ->whereIn('id', $missingIds) ->get(); foreach ($accounts as $account) { self::$currencyCache[$account->id] = $account->account->currency_code ?? CurrencyAccessor::getDefaultCurrency(); } } public function get(Model $model, string $key, mixed $value, array $attributes): int { return (int) $value; } /** * @throws UnexpectedValueException */ public function set(Model $model, string $key, mixed $value, array $attributes): int { return (int) $value; } /** * Get currency code from the cache or use default */ private function getCurrencyCodeFromBankAccountId(?int $bankAccountId): string { if ($bankAccountId === null) { return CurrencyAccessor::getDefaultCurrency(); } return self::$currencyCache[$bankAccountId] ?? CurrencyAccessor::getDefaultCurrency(); } }