A
startTransaction();иногда бывает так, что в $result нет ничего, хотя пользователь создался
$insertData = [...];
$stmtUser = $pdo->prepare('Insert into users ..... ON DUPLICATE KEY UPDATE ....');
$stmtUser->execute($insertData);
$lastInsertId = $pdo->lastInsertId();
UsersManager->onUserCreate();
completeTransaction();
$result = $pdo->query(SELECT .... where id =$lastInsertId );
при тестах все ок
куда копать не знаю