Sometimes $model->save() will not work.
Even worse, sometimes !$model->save() does not want to work either.
This might happen if you have a validation error for which you did not create a validation rule in the model. Such as some database errors.
User-A creates a record and enters a foreign key in the record.
While User-A is still entering the data, User-B deletes the foreign key’s record (or User-A entered a wrong foreign key).
When User-A saves the record, nothing happens and validation errors are not displayed.
To overcome this particular example use the "exist" validation rule on the foreign key; or you can have a procedure that handles database errors.