Having a well designed domain, with aggregates that do not reference each other, well defined boundaries and aggregate objects with well defined object references, why is it a bad practice to have transaction logic inside repositories (with a repository made for each domain object)?
Before answering with UoW pattern, take in consideration this question UoW limitation.