Como invocar um método repetidamente até retornar um valor `Futuro` contendo` Nenhum`

Dado um método que retorna umFuture como isso...

def remove(id: String): Future[Option[User]] = Future {
  // removes and returns the user identified by `id`
}

... como invocá-lo repetidamente até que retorne umFuture valor contendoNone?

EDITAR

Talvez valha a pena mencionar que não preciso coletar os resultados. Eu só preciso invocar o método, desde que ele encontre um usuário para remover. A idéia seria ter umloop que para quandoremove retornaFuture[None].