$post = $postsRepository->findPostByAlias($alias);
$post->publish(); // сохранять ненадо ничего, за всем следит UnitOfWork
// по сути с таким подходом у нас нет разницы где хранятся объекты,
// и объекты ничего не знают о том как они хранятся, что идеологически более правильно нежели AR
$newPost = new Post($title, $body, $author);
// вместо записи в базу мы добавляем новый элемент в репозиторий
// скажем для тестов мы можем использовать in memory repository
$postsRepository->add($post);
// ...где-то в контроллере
$entityManager->flush() // сохраняет результат работы транзакции, вычисляет и коммитит изменения