/** * Define your route model bindings, pattern filters, etc. * * @return void */ public function boot() { parent::boot(); Route::bind('article', function ($slug) { if (!Auth::user()) { return Article::published()->slug($slug)->first(); } return Article::where('slug', $slug)->first() ?: Article::findOrFail((int) $slug); }); Route::bind('tag', function ($slug) { if (!Auth::user()) { return Tag::slug($slug)->first(); } return Tag::where('slug', $slug)->first() ?: Tag::findOrFail((int) $slug); }); Route::bind('page', function ($id) { return Page::find($id); }); }