# File lib/mongoid/persistence/modification.rb, line 21
      def prepare(&block)
        return false if validating? && document.invalid?(:update)
        document.run_callbacks(:save) do
          document.run_callbacks(:update) do
            yield(document); true
          end
        end.tap do |result|
          unless result == false
            document.reset_persisted_children
            document.move_changes
            Threaded.clear_options!
          end
        end
      end