Stamp the completed_at date.
Put a proper test are setting completed_at after eject.
Refactor completed method.
Break out the before and after steps.
Refactor execute.
Refactor for readability.
Refactor the operations into a hash of functions.
Execute the operation in the after_process filter.
Move more things around.
Consistency.
Consolidate setting the historical result.
No need to save the effort multiple times.
More cleanup.
Formatting.
If no operation is defined, move to next step by default.
Use the name of the worker as the default name of the step it will process.