И в L4 и в L5 так было всегда. Updated_At всегда выставлялось равным Created_At при создании записи. Смотрите сорсы, там это есть.
Выход - выключить timestamps и обновлять эти поля самому в событиях модели (например, User::creating() или User::updating()). Подробнее: https://laravel.com/docs/5.3/eloquent#events
По бэкенду сказать сложно, так как может быть написано на чём угодно. Явных признаков какого-то фрейморка или системы нет, но судля по ответу сервера это PHP.
На фронтэнде используется Angular.
Маржины складываются, вот и всё. То есть например у верхнего блока был нижний маржин 20, а у нижнего блока верхний 10, то сам маржин между ними будет 10. Это то, как работает маржин.
Сохраняйте в hidden-поле айдишник записи для каждой строки и по нему потом обновляйте в БД. Хотя, конечно, код далёк от идеала и желательно ещё какие-нибудь токены использовать (но это тема отдельного вопроса).
Думаю, что лучшим решением будет проверка айпи в самом контроллере, прямо в начале функции-хэндлера. Хардкодить айпишник не обязательно, можно это вынести в конфиг.
Класс миграции был не включён в автозагрузку, то есть Composer его не видит, соответственно Laravel тоже. Помогает команда консоли composer dump -o после создания новой миграции.
1) не совсем понятно, причём тут PHP.
2) похоже на какой-то вирусняк и/или XSS, советую удалить и посмотреть что будет (скорее всего, с самим сайтом ничего не случится), нормальные скрипты (когда ничего не нужно прятать) так не пишут.