Insignia por tener ciertas otras insignias

Estoy trabajando en una consulta SQL de insignias que otorga una insignia a los usuarios cuando tienen todas las insignias de una lista especificada (por ejemplo, los identificadores 3, 4 y 5).

Sé que esta consulta de insignias funciona para una sola insignia:

SELECT user_id, count(id), current_timestamp as granted_at
FROM user_badges 
WHERE badge_id = 4
GROUP BY user_id 

Pero, ¿cómo haría que esto se aplique a varios identificadores de insignia? Agregar otra badge_id = X no funcionará porque esto busca una sola insignia. Intersect parece que funcionaría, pero no es compatible. Esta consulta se ejecutaría diariamente y no apuntaría a ninguna publicación.
¡Gracias!

Uso algo como esto para crear un Nivel de Usuario Alternativo para mis miembros.
Puedes reemplazar ib.badge_id con el ID de la insignia que tus miembros deberían haber logrado.

SELECT user_id, CURRENT_TIMESTAMP granted_at, NULL post_id
FROM user_badges pb
WHERE badge_id = 1
AND EXISTS (
  SELECT 1 FROM user_badges ib
  WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 11
)
AND EXISTS (
  SELECT 1 FROM user_badges ib
  WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 124
)
AND EXISTS (
  SELECT 1 FROM user_badges ib
  WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 123
)
AND EXISTS (
  SELECT 1 FROM user_badges ib
  WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 127
)
AND EXISTS (
   SELECT 1 FROM user_badges ib
   WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 5
)

¡Gracias por tu ayuda, funciona perfectamente!