Вы можете использовать авторизацию / политику или Гейтс, предоставленный laravel.
или просто для простоты,
в вашей модели Post
public function canView()
{
return $this->author_id === auth()->id() || $this->editor_id === auth()->id();
}
в вашем контроллере
public function show(Post $post)
{
//you already have the $post
if(! $post->canView()) {
// cannot view post
}
// can view post.
}
Следуя этому пути, вы можете Легко используйте один и тот же источник правды для авторизации во всем приложении, так как вы, вероятно, будете использовать экземпляр eloquent во всем приложении.
Если ваша логика c более сложная, обратитесь к Laravel. Политика