where('slug', $params[0])->first()) === null ) { throw PageNotFoundException::forPageNotFound(); } $this->page = $page; return $this->{$method}(); } public function index(): string { $cacheName = implode( '_', array_filter([ 'page', $this->page->slug, service('request') ->getLocale(), can_user_interact() ? 'authenticated' : null, ]), ); if (! ($found = cache($cacheName))) { $data = [ 'metatags' => get_page_metatags($this->page), 'page' => $this->page, ]; $found = view('pages/page', $data); // The page cache is set to a decade so it is deleted manually upon page update cache() ->save($cacheName, $found, DECADE); } return $found; } }