$query
->groupBy('c.id')
->having('COUNT(DISTINCT f.feature_id) = :featuresCount')
->andHaving('SUM(CASE WHEN f.feature_id IN (:features) THEN 1 ELSE 0 END) = :featuresCount')
->setParameter('featuresCount', count($features), ParameterType::INTEGER);
;