# File lib/state_machine/integrations/sequel.rb, line 291
         def define_action_helpers
           if action == :save
             @instance_helper_module.class_eval do
               define_method(:valid?) do |*args|
                yielded = false
                result = self.class.state_machines.transitions(self, :save, :after => false).perform do
                  yielded = true
                  super(*args)
                end
                
                if defined?(::Sequel::MAJOR) && (::Sequel::MAJOR > 3 || ::Sequel::MAJOR == 3 && ::Sequel::MINOR > 13)
                  raise_on_failure?(args.first || {}) && !yielded && !result ? raise_hook_failure(:validation) : result
                else
                  raise_on_save_failure && !yielded && !result ? save_failure(:validation) : result
                end
              end
              
              define_method(defined?(::Sequel::MAJOR) && (::Sequel::MAJOR >= 3 || ::Sequel::MAJOR == 2 && ::Sequel::MINOR == 12) ? :_save : :save) do |*args|
                yielded = false
                result = self.class.state_machines.transitions(self, :save).perform do
                  yielded = true
                  super(*args)
                end
                
                if yielded || result
                  result
                elsif defined?(::Sequel::MAJOR) && (::Sequel::MAJOR > 3 || ::Sequel::MAJOR == 3 && ::Sequel::MINOR > 13)
                  raise_hook_failure(:save)
                else
                  save_failure(:save)
                end
              end
            end unless owner_class.state_machines.any? {|name, machine| machine.action == :save && machine != self}
          else
            super
          end
        end