I don’t see why you would want the params encoded in the cursor? You’re accomplishing exactly the same thing in the request except the params would be Base64 encoded, you’re still sending exactly the same data just in a different and non-standard way.
This is the standard way of doing it. Different services may provide cursors in slightly different ways (such as the pagination metadata returning the full before/after URLs including the params already in place for you, others such as Twitch just return the cursor itself).