Só um detalhe, o contador deveria estar sendo inicializado fora do for, da forma que esta nunca vai passar de 1 adoção por tutor.
public class ValidacaoTutorComLimiteDeAdocoes {
@Autowired
private AdocaoRepository adocaoRepository;
@Autowired
private TutorRepository tutorRepository;
public void validar(SolicitacaoAdocaoDto dto) {
List<Adocao> adocoes = adocaoRepository.findAll();
Tutor tutor = tutorRepository.getReferenceById(dto.idTutor());
int contador = 0;
for (Adocao a : adocoes) {
if (a.getTutor() == tutor && a.getStatus() == StatusAdocao.APROVADO) {
contador = contador + 1;
}
if (contador == 5) {
throw new ValidacaoException("Tutor chegou ao limite máximo de 5 adoções!");
}
}
}