has('author')) { // $author = $request->get('author'); // $user = User::find($author); // $blogPosts = $user ? $user->author_of_blog_post()->distinct()->limit(10)->get()->unique() : []; // } elseif ($request->has('tag')) { // $tagId = Str::of($request->get('tag'))->split('/-/')->first(); // $blogPosts = Tag::find($tagId)->blogPosts()->orderBy('created_at', 'desc')->limit(10)->get()->unique(); // } else { // $blogPosts = BlogPost::orderBy('created_at', 'desc')->limit(10)->get(); // } return view('blog_post/index'); } public function create(): View { return view('blog_post/edit_form'); } public function show(BlogPost $blogPost): View { $data['author'] = $blogPost->author()->first(); $data['tags'] = $blogPost->tags()->get(); $data['blogPost'] = $blogPost; $expiresAt = now()->addHours(24); views($blogPost) ->cooldown($expiresAt) ->record(); return view('blog_post/show', $data); } public function edit(BlogPost $blogPost): View { if (! $this->canEditBlogPost($blogPost)) { abort(403, 'Unauthorized action.'); } return view('blog_post/edit_form', ['blogPost' => $blogPost]); } private function canEditBlogPost(BlogPost $blogPost): bool { return Gate::allows('edit', $blogPost); } }