def before_hook
      return unless before

      Logger.info "Before Hook Starting..."
      before.call
      Logger.info "Before Hook Finished."
    rescue Exception => err
      @before_hook_failed = true
      ex = err.is_a?(StandardError) ? Error : FatalError
      raise ex.wrap(err, "Before Hook Failed!")
    end
def before_hook
      return unless before

      Logger.info "Before Hook Starting..."
      before.call
      Logger.info "Before Hook Finished."
    rescue Exception => err
      @before_hook_failed = true
      ex = err.is_a?(StandardError) ? Error : FatalError
      raise ex.wrap(err, "Before Hook Failed!")
    end
Runs the +before+ hook.
 Any exception raised will be wrapped and re-raised, where it will be
 handled by #perform the same as an exception raised while performing
 the model's #procedures. Only difference is that an exception raised
 here will prevent any +after+ hook from being run.