Yeah, this is one of the tricky parts of callbacks. The problem with `before_create` is that it is called after `validate()`. So if you're setting an attribute automatically whose presence is validated, using `before_create` won't work. `before_validation` is called whenever the object is created/saved, so we have to add the `on: :create` to ensure that the date is only set the first time.