The create strategy currently assumes that create! mutates the object to save it, which means that changes get lost if you're not mutating. It basically does this:
instance = Model.new
instance.some_attribute = "value"
instance.save!
instance
Because the return value of the to_create block (which just calls save! by default) is ignored, you need to mutate in create!.
This is arguably a bug, but fixing it would be a backwards-incompatible change in the API. We'll discuss internally how to handle this, but we're open to feedback in the meantime.
Thanks,