$warnings Receives $warning when the step fails. */ public static function run(callable $step, string $context, string $warning, array &$warnings): mixed { try { return $step(); } catch (Throwable $e) { Log::failure($context, $e); $warnings[] = $warning; return null; } } }