def deep_clone!(options = {})
      processed_options = Para::Cloneable::IncludeTreeBuilder.new(self, cloneable_options).build
      options = options.reverse_merge(processed_options)
      callback = build_clone_callback(options.delete(:prepare))
      
      deep_clone(options) do |original, clone|
        Para::Cloneable::AttachmentsCloner.new(original, clone).clone!
        callback&.call(original, clone)
      end
    end
def deep_clone!(options = {})
      processed_options = Para::Cloneable::IncludeTreeBuilder.new(self, cloneable_options).build
      options = options.reverse_merge(processed_options)
      callback = build_clone_callback(options.delete(:prepare))
      
      deep_clone(options) do |original, clone|
        Para::Cloneable::AttachmentsCloner.new(original, clone).clone!
        callback&.call(original, clone)
      end
    end
Wraps the deep_cloneable gem #deep_clone method to allow using the
 predefined associations and options from our Cloneable.acts_as_cloneable
 macro.