Caching with Cloudflare Worker's stream response

I’m using Cloudflare Worker to do some authentication and stream files from my own origin like below:

addEventListener('fetch', event => {
  event.respondWith(fetchAndStream(event.request));
});

async function fetchAndStream(request) {
  const { searchParams } = new URL(request.url)
  // Do some authentication with searchParams, e.g. searchParams.get('token')

  let response = await fetch(request);
  let { readable, writable } = new TransformStream();
  response.body.pipeTo(writable);
  
  return new Response(readable, response);
}

Is there any sort of caching that I can do here to reduce the number of requests to my origin server? Can I make use of the Cache API (https://developers.cloudflare.com/workers/runtime-apis/cache/)? Or would just setting cache headers like Cache-Control be enough? Thank you for your help!