I have three models that relate to each other one to many:
Country
class Country extends Model
{
    protected $fillable=['name','sort'];
    public $timestamps=false;
    public function region(){
        return $this->hasMany('App\Models\Region');
    }
}
Region
class Region extends Model
{
    protected $fillable=['country_id','name','sort'];
    public  $timestamps=false;
    public function country()
    {
        return $this->belongsTo('App\Models\Country');
    }
    public function city()
    {
        return $this->hasMany('App\Models\City');
    }
}
City
class City extends Model
{
    protected $table='cities';
    protected $fillable=['region_id','name','sort'];
    public  $timestamps=false;
    public function region()
    {
        return $this->belongsTo('App\Models\Region');
    }
}
When we remove the country automatically, remove all child item relationship, that is, removed and regions and city this country
I am doing so:
Model Country
    public  static function boot() {
        parent::boot();
        static::deleting(function($country) {
            //remove related rows region and city
            // need an alternative variation of this code
            $country->region()->city()->delete();//not working
            $country->region()->delete();
            return true;
        });
    }
}
OR
Model Region
public  static function boot() {
        parent::boot();
        // this event do not working, when delete a parent(country)
        static::deleting(function($region) {
            dd($region);
            //remove related rows city
            $region->city()->delete();
            return true;
        });
    }
}
options with cascading deletes database, please do not offer
UPDATE
I found the answer
use closure for query builder, to remove related models
Model Country
public  static function boot() {
        parent::boot();
        static::deleting(function($country) {
            //remove related rows region and city
            $country->region->each(function($region) {
                $region->city()->delete();
            });
            $country->region()->delete();//
            return true;
        });
    }
Laravel Eloquent ORM - Removing rows and all the inner relationships
 
     
     
     
    