Não responde a sua pergunta mas sugiro que não use beginTransaction
.
Se em algum momento você esquecer o commit ou o rollback seu banco vai ficar inconsistente.
DB::transaction(function () {
/// code
}, 5);
Dessa forma o commit e rollback são feitos automaticamente