If you want to delete a model with related models you can use **Laravel model events**. There is also a special case if your models cascade.
Lets say you have Folder and File Eloquent models that are related and use SoftDeletes trait and when you delete a folder you also want to delete files in folder and all subfolders with files.
In the `boot` method or Folder model you catch `delete` and `restore` events (actually `deleting` and `restoring` events that trigger before restoring or deleting happens). You can delete/restore all files in folder you're deleting/restoring with `$folder->files()->delete();` and `$folder->files()->withTrashed()->restore();`.