В данный конкретный вариант у вас похоже реализован самый медленный вариант вставки - а именно куча отдельных insert, с коммитом после каждой, ибо никакой магии в saveMany нету - в цикле обходим массив и по одному вставляем.
1. Использовать номальный bulk insert. Это вроде как делается просто
Model::insert([
[row1], [row2], [row3], [row4],
]);
тогда на выходе вы должны получить запрос вида insert into table() values(row1), (row2), (row3);
2. Обернуть в транзакцию как советовал
JhaoDa . Это хуже чем первый вариант, но лучше вашего.