В данном случае виноват не backend и laravel, а ваш пробел в азах js, без обид))
Проведите эксперимент и выполните код:
var obj = {2:"два", 1:"один", 10:"десять", 0:"нуль"};
console.log(obj);
В каком бы порядке не разместили мы внутри объекта записи с числовым ключом, при выводе они будут отсортированы от меньшего к большему (потому что, как выше верно подметили в комментариях, объект не сортируется, а ключи выставляются по порядку).
Хотите сохранить порядок? Приведите ключ к строке, но простая строка с числом не спасёт, JS всё-равно сперва преобразует её к числу и опять отсортирует. Можно добавить любой строковой символ к ключу и записи в итоге сохранят свой порядок.