Mais de um filter JAVA 8 é possivel ?

Gostaria de fazer vários filters e retorna apenas um resultado, caso não encontrar o id passado lançar uma exceção.
Mas ao colocar o segundo filter ele da erro de cann not resolve method ‘getId’

  private String getServiceDeliveryType(final String id) {
    Integer numero=52;
   Integer numero2=54;
    final List<ServiceDelivery> serviceDeliveries = serviceDeliveryRepository.findById(id);
    return serviceDeliveries
            .stream()
            .filter(serviceDeliveryValue -> numero.equals(serviceDeliveryValue.getId()))
            .findFirst()
            .map(value->"EXPRESSO").filter(serviceDeliveryValue -> numero2.equals(serviceDeliveryValue.getId()))
            .map(value-> "Pacote")
            .orElseThrow(new IllegalArgumentException(""));


}

Sim, mas está fazendo errado

Isso retorna um stream de Strimg e não de ServiceDelivery

Supondo que o id seja único, esse método devera retornar uma lista com no máximo um item, então qual o motivo de usar o filtro se já se sabe que o getId retorna o mesmo valor que o parâmetro id?

private String getServiceDeliveryType(final String id) {
  if ("52".equals(id)) {
    final List<ServiceDelivery> serviceDeliveries = serviceDeliveryRepository.findById(id);
    if (serviceDeliveries.size() > 0) {
      return serviceDeliveries.get(0);
    }
  }
  throw new IllegalArgumentException("");
}

no caso gostaria de fazer dois filter e retorna uma string com valor expresso e id 58 e outro filter caso numero for 54 e retorna pacote é possivel fazer isso usando o filter ?

eu faria assim:

String numero="52";
String numero2="54";
final List<ServiceDelivery> serviceDeliveries = serviceDeliveryRepository.findById(id);
List<String> result = serviceDeliveries
        .stream()
        .map(sd -> sd.getId()) // retorna String ou Integer? supondo String
        .map(id -> numero.equals(id) ? "EXPRESSO" : (numero2.equals(id) ? "Pacote" : null))
        .distinct()
        .filter(s -> s != null)
        .collect(Collectors.toList());
 if (result.contains("EXPRESSO")) return "EXPRESSO";
 else if (result.contains("Pacote")) return "Pacote";
 else throw new IllegalArgumentException("");

O id é String e vc está comparando com Integer? Isso está confuso.