Opa Dario, tudo bem?
A melhor prática é sempre manter suas regras de negocio mais proximas do dominio, o Controller é uma classe de passagem com controle de fluxo, ela não deve possuir lógica relacionadas ao negocio, apenas chamadas e controle de respostas(devolver paginas de erro, qual status code devolver, qual pagina devolver).
Vou deixar aqui só para lembrar cada camada:
Model é responsável pela nossas lógicas de negocio, é a camada mais interna que deve ser protegida, responsável pela leitura e escrita de dados, ou seja, está ligado a manipulação de dados.
View tudo que é relacionada a apresentação, tudo que é visivel ao usuario.
Controller é responsável por controlar todo o nosso fluxo de informação que passa por nosso sistema, é no controller que se decide “se”, “o que”, “quando” e “onde” deve funcionar. Realiza chamadas para executar nossas regras.
Espero que tenha ficado mais claro,
caso ainda tenha duvida, pode perguntar novamente. :)