на самом деле это дебильный комикс, потому что "экранировать символы" - это дебилизм и инъекции
route('posts.show', $post)
не было. Ну и эта функция на действия контроллеров навешивается, а не на именованный маршрут. Если вдруг соглашение по именованию маршрутов у Route::resource поменяют - оно не сломается.