Поскольку у вас SPA, нет смысла собирать фронт средствами Ларавеля, да и вообще держать их в одной папке.
Не только порт, но и адрес к которому по API будет обращаться SPA стоит вынести в переменные, чтобы фронт от бэка не зависел совсем. Насчёт настройки окружения, вопрос странный, можно вообще на сервере ноду не держать, собирать всё локально и деплоить как статику. Ну, а для бэкенда есть много вариантов. Например
laradock.io
https://forge.laravel.com/
Но как показывает практика, небольшие приложение даже на shared хостинге от Бегета себя нормально чувствуют.