apiLogger->send('eia', 'GET', self::URL, fn () => Http::timeout(10) ->get(self::URL, [ 'api_key' => config('services.eia.api_key'), 'frequency' => 'daily', 'data[0]' => 'value', 'facets[series][]' => 'RBRTE', 'sort[0][column]' => 'period', 'sort[0][direction]' => 'desc', 'length' => 30, ])); if (! $response->successful()) { Log::error('EiaBrentPriceSource: request failed', ['status' => $response->status()]); return null; } $rows = collect($response->json('response.data') ?? []) ->filter(fn (array $row) => ($row['value'] ?? '.') !== '.') ->map(fn (array $row) => [ 'date' => $row['period'], 'price_usd' => (float) $row['value'], ]) ->all(); if ($rows === []) { Log::warning('EiaBrentPriceSource: no valid observations returned'); return null; } return $rows; } catch (Throwable $e) { Log::error('EiaBrentPriceSource: fetch failed', ['error' => $e->getMessage()]); return null; } } }