use transaction promise to resolve record saves