December 27, 2025
Cascading Soft Deletes in Laravel
package

Laravel’s SoftDeletes works great until you delete a parent model and its related records stay alive. Database cascades don’t work with soft deletes, so you’re left cleaning things up manually.
The Laravel Cascade Soft Deletes package fixes this by cascading soft deletes at the Eloquent level.
class User extends Model { use SoftDeletes, CascadeSoftDeletes; protected $cascadeDeletes = ['orders']; }
Now deleting a user will automatically soft delete his orders.
$user->delete();
One thing to know: restoring the parent does not restore children. This avoids restoring records that weren’t deleted by the cascade.
If you use soft deletes and parent–child relationships, this package saves you from extra queries and messy delete logic. Simple, predictable, and very Laravel.
