class ParanoidPhone
  include Mongoid::Document
  include Mongoid::Paranoia

  attr_accessor :after_destroy_called, :before_destroy_called

  field :number, type: String

  embedded_in :person

  before_destroy :before_destroy_stub, :halt_me
  after_destroy :after_destroy_stub

  def before_destroy_stub
    self.before_destroy_called = true
  end

  def after_destroy_stub
    self.after_destroy_called = true
  end

  def halt_me
    person.age == 42 ? false : true
  end
end

class ParanoidPhone
  include Mongoid::Document
  include Mongoid::Paranoia

  attr_accessor :after_destroy_called, :before_destroy_called

  field :number, type: String

  embedded_in :person

  before_destroy :before_destroy_stub, :halt_me
  after_destroy :after_destroy_stub

  def before_destroy_stub
    self.before_destroy_called = true
  end

  def after_destroy_stub
    self.after_destroy_called = true
  end

  def halt_me
    throw :abort if person.age == 42
  end
end

Fix callback in a dummy application used in specs
Fix callback in a dummy application used in specs

Rails 5 has changed the way how callbacks chain should be stopped.
Returning false no longer works.  Now one should throw an :abort symbol.
