Как правильно сделать роутинг в Laravel?
Как он узнает {auto} отличается от {page} или {category}? Ответ никак, так как они идентичны поэтому всегда срабатывает auto.
Тебе нужно придумывать либо префикс Route::prefix('auto') (типа auto_{auto}), либо для каждого писать паттерн правило именования(на переменные что формирует путь, ), либо внутри писать обработчик которые если не найдет auto по правилам перекидыват на page  и тд).
Короче говоря, изучи https://laravel.com/docs/5.4/routing , есть возможность расписать расписать свою логику работы роутера, но это все усложнит.
Я думаю твой вариант перейти на префиксы и все будет красиво и быстро работать.
Роутер не сможет никак различить /{auto}/, /{page}/ и /{category}/. Вам нужно для каждого раздела сайта сделать постоянный уникальный префикс. Что-то вроде такого: /cars/{auto}/, /pages/{page}/ и /categories/{category}/.