successful()) { $responseData = $response->json(); if (isset($responseData['conversion_rate'])) { return $responseData['conversion_rate']; } } return null; } public function getCachedExchangeRate(string $defaultCurrencyCode, string $code): ?float { $cacheKey = 'currency_data_' . $defaultCurrencyCode . '_' . $code; $cachedData = Cache::get($cacheKey); if ($cachedData !== null) { return $cachedData['rate']; } $rate = $this->getExchangeRate($defaultCurrencyCode, $code); if ($rate !== null) { $dataToCache = compact('rate'); $expirationTimeInSeconds = 60 * 60 * 24; // 24 hours Cache::put($cacheKey, $dataToCache, $expirationTimeInSeconds); } return $rate; } }