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

Entendi, obrigado! Você não saberia dizer o porque não funciona de forma alguma a minha transaction?

Não, deveria estar funcionando