addMinutes(5), function () use ($id) { $baseUrl = config('services.api.base_url', 'https://api.sam.kr'); $apiKey = config('services.api.key'); $token = session('api_access_token', ''); $response = Http::baseUrl($baseUrl) ->withoutVerifying() ->withHeaders([ 'X-API-KEY' => $apiKey, 'X-TENANT-ID' => session('selected_tenant_id', 1), ]) ->withToken($token) ->timeout(10) ->get("/api/v1/files/{$id}/presigned-url"); if (! $response->successful()) { return null; } return $response->json('data.url'); }); if (! $url) { Cache::forget($cacheKey); abort(404); } return redirect($url); } }