Don't attempt to persist invalid records

This change adds running validation before attempting to save a record.
Before that, any validations from the model were ignored when saving.