An “issue” with the second one in this example is that the interface becomes “temporal” — you *always* have to call `do_it` before you can access the results.
In these cases I prefer te return some result object. It juist suits the single-purposeness of this type of service/command object better.
That being said… I use ActiveRecord everyday and it has that same temporal interface.
It feels like less of a problem there.. Entities/Records aren’t stateless. Commands should be?