Валидация выполнится два раза, вряд ли это то, что хочется. Нужно заменить вызов ```isValid()``` в ```if``` на ```validate``` и использовать результат его работы.