payloadHasStepError function
Whether any step already carries the failure, so runners keep fail text XOR between step and result.
Implementation
bool payloadHasStepError(Payload payload) =>
payload.allSteps.any((step) => (step.errorMessage ?? '').isNotEmpty);