SoftDelete not working issue. BeforeDelete should return false in order to prevent default behavior. With beforeDelete returning true ( ->delete() returns ->save), the record is being removed from database.