La logica siempre debe de tratarse en el modelo, y esto es porque más de 1 controlador puede usar tu modelo, si la logica la incluyes en el modelo, cuando quieras hacer algo diferente tendrías que copiar el contenido de tu controller.
Es por eso que siempre se recomienda que la relación sea de modelo (capa de negocios) al controlador, y que uno o más controladores puedan leer este modelo y siempre actuen igual.
Te recomiendo leer este pequeño articulo que si bien no es PHPOO (es Ruby) habla muy bien de porque la logica debe de pertenecer al modelo:
http://weblog.jamisbuck.org/2006/10/...ller-fat-model
Saludos.