Actually it seems like an absolute overkill to query GET trends/available each 5 minutes. This data isn’t very likely to change that quickly as far as I know, so you should be fine caching it at least for an hour or so.
After that, if I understood you right, you need to get the Trends from all locations available? Then the only way to do it, is to request this endpoint less frequently and cache the data longer. I don’t think that you would miss much, if you cache trends/place for an hour or so, for each location.