replace deprecated first_or_create method.
use validating finder methods instead of explicit raise.