Основная проблема это драйвера на оборудование. Скорее всего винда тупо не запустится.
Можно попробовать использовать sysprep, но по-моему проще тупо винду накатить заново. Быстрее и надёжнее.
Этот код не должен вызывать эту ошибку. Проверяйте, возможно вы изменения на сервер не залили или типа того.
А может ошибка генерируется в другом месте. проверьте номер строки в ошибке.
Каждый вызов функции обернуть в try catch по отдельности. Исключение ловить более высокого уровня (\Exception или \Throwable например).
Внутри функций куча try catch, в них вообще смысла нет.
Не думаю. Просто удобство. DI можно использовать не только в контроллерах, а вообще в любых классах, при условии что этот класс разрешается через контейнер (ну чтобы ручками зависимости не разрешать). https://laravel.com/docs/7.x/container