I'm migrating from Algolia to Typesense for my search and I've relied so far on "scoped keys" to always pre-filter results for each user based on their access rights. This was done easily with Algolia.
I may be late to this, but I was running into the same question and currently I'm doing it like so:
// tenant_id is my scoped key in this case.
Contact::search($this->query)
->options([
'filter_by' => 'tenant_id:=' . Auth::user()->current_tenant_id,
])->paginate(15);
Make sure to add your scoped keys to both the model's toSearchableArray() method, and configure them as filterable in your scout.php driver settings.