From what I understand, the filter is executed after the root filter and pagination, just as it reads. To paginate that after applying multiple filters, you could:
{
set as var(func: type(Student)) @filter(allofterms(name, "Lydia Spirits")) # or vise-versa, which ever filters to a smaller set faster
student(func: uid(set), first: 10, offset: 0){
uid
name
}
}
(feel free to correct me anyone who knows better, answering from recollection)