I used this package to handle query caching: watson/rememberable
it creates the cached results key based on the query and its bindings so it will cache each paged result separately.
Read the package's readme for installation guidance, after installing and configuring your model to use that the usage in your case would be something like this:
What are you expecting to happen when you cache the query? If you are hoping to avoid re-running the query on pages 2,3,4 etc then this will have no effect since they are different queries.
The cache will only have a hit for the same arc_id and the same page
by the way $arc_id also needs to be part of the cache key