Spatie works with laravel authorization. So jestream would't affect authorization, it's the same as breeze, ui, or manual.
Just follow their documentation and you are good to go.
How is it possible to forbid direct access to the hidden items
How your query is formed, or if too much to separate, then have different sections altogether.
Think about it like this, if it takes too many if else type constructs to handle, it's time to have separate views for say an admin vs a user, but just an opinion and suggestion and example.
Edit:
I can still access the functionality directly, by knowing the exact URL.
Try this: In this forum click the "My Participation" link. And notice what you do not see. There is no id. The Auth::id is used in the query. That's why I mentioned how your query is formed.
You shouldn't have to mess with middleware to have good authorization. But that's up to you.