Докер.
Вообще очень странно, что вы так долго могли усидеть на такой неудобной конструкции.
99% разработчиков тестируют код локально, ничего никуда не "синхронизируя" и не "заливая".
Железо при этом не имеет значения, а окружение как раз задается докером.
Правда, говорят что под виндой (и, вроде бы, маком) какие-то до сих пор проблемы с докером, но в целом это совершенный уже мейнстрим.
Если надо просто поколупаться в небольшом кусочке кода, то я запускаю встроенный сервер.
Но для рабочих проектов - уже много лет только докер (но разрабатываю я под линуксом).
Как вариант - можно попробовать Continuous Integration, который весь этот список от пуша до composer update на удалённом будет выполнять автоматом.