Ever wanted to transform the paginator results to return a subset of fields and not all? Better use the through() function instead of the map() function.

Instead of doing this (which replaces the paginator with a new collection):

$users = User::paginate(10)->map(fn ($user) => [
    'id' => $user->id,
    'name' => $user->name;
]);

You should be using the through method instead (which keeps the result a paginator):

$users = User::paginate(10)->through(fn ($user) => [
    'id' => $user->id,
    'name' => $user->name;
]);

Thanks to @bhaidar for the tip.