I think this logic makes more sense in the `AssessmentWorkflow` model itself.  Something like, `AssessmentWorkflow.validate_steps(steps)`