¿Cómo verificar si Mono está vacío?

Estoy desarrollando una aplicación con Spring Boot 2.0 y Kotlin usando el framework de WebFlux.

Quiero verificar si una identificación de usuario sale antes de save una transacción. Estoy sorprendido en algo simple como validar si un Mono está vacío.

fun createTransaction(serverRequest: ServerRequest) : Mono<ServerResponse> { val transaction = serverRequest.body(BodyExtractors.toMono(Transaction::class.java)) transaction.flatMap { val user = userRepository.findById(it.userId) // If it's empty, return badRequest() } return transaction.flatMap { transactionRepository.save(it).then(created(URI.create("/transaction/" + it.id)).build()) } } 

Es posible hacer lo que quiero?