Usando reacciones para otorgar insignias

Tengo uno con el que estuve jugando, aunque lo dejé a un lado para mirarlo con ojos frescos y aún no he vuelto a él, así que puede que necesite algo de trabajo. Se trata de otorgar una insignia basada en obtener al menos 10 publicaciones con la reacción :chefs_kiss: dada por un miembro del grupo ‘data-team’ para publicaciones en la categoría Data & reporting

SELECT p.user_id, MIN(p.created_at) granted_at
FROM badge_posts p
  JOIN topic_tags tt ON tt.topic_id = p.topic_id
WHERE tt.tag_id = 615
  AND EXISTS (
         SELECT 1
            FROM discourse_reactions_reactions dr 
             JOIN discourse_reactions_reaction_users dru ON dr.id = dru.reaction_id
             JOIN group_users gu ON gu.user_id = dru.user_id
            WHERE dr.post_id = p.id
              AND dr.reaction_value = 'chefs_kiss'
              AND gu.group_id = 175
       )
 GROUP BY p.user_id
HAVING COUNT(*) >= 10

Aunque no me complació usar MIN ya que daba la fecha de concesión incorrecta.

Hay muchos criterios para ello, y es automático, lo que creo que lo empuja hacia el extremo más complicado. Creo que uno más simple podría ser mucho más alcanzable sin demasiado esfuerzo.