How do I merge Multiple Queries so I can paginated them

I am currently implementing a search method that handles orFilters
OLD
Returns a list of Persons and there pagination, and ordered in the way specified by the params in the HTTP queries.
eg. /events/{event_id}/people?name=bob&age=45&direction=asc&column=name&page=2&limit=20

async index (ctx) {
    const { request, response } = ctx

    const query = request._all // request.input
    const event = await request.post().parentModel
    const column = query.column || 'created_at'
    const direction = query.direction || 'desc'
    const orderRaw = column == 'created_at' ?
      `${column} ${direction}` :
      `(meta ->> '${column}') ${direction}`
    const people = await event
      .people()
      .filter(query)
      .orderByRaw(orderRaw)
      .paginate(query.page, query.limit)

    response
      .status(200)
      .json({
        message: 'Person list.',
        data: people
      })
  }

NEW
eg. /events/{event_id}/people?q=<ENCODED QUERYOBJ>&direction=asc&column=name&page=2&limit=20
QUERYOBJ (unflatened)

{
  filterOr: [
    { name: "Aman" }, // filterObj
    { name: "Boris", age: 43 }
  ]
}
async search({ request, response }) {
    const query = request._all // request.input
    const filterObjs = JSON.parse(
      query.encoded ? atob(query.q) : query.q
    ).filterOr
    const event = await request.post().parentModel
    let queries = []
    filterObjs.forEach(filterObj => {
      queries.concat(
        await event
          .people()
          .filter(filterObj)
          .orderByRaw(orderRaw)
          .paginate(query.page, query.limit)
      )
    })
    ...
  }

The problem is I loose the pagination on the combined result. Originally, I do a single AND filter, but now I need to make more complex OR & AND queries, while keeping the pagination and order for the combined result.