FirstAsync takes a predicate