Déporter la logique de validation de vos controlleurs pour la placer dans la couche service. Ceci vous permettra de conserver un couplage faible, et une bonne découpe des responsabilités.