Soft delete đánh dấu record là đã xóa mà không thực sự xóa khỏi database. Thêm vào model: use SoftDeletes; và migration thêm $table->softDeletes(); tạo cột deleted_at. Query tự động loại trừ record đã soft-delete: User::all() không bao gồm đã xóa. Truy cập bằng: User::withTrashed()->get() (bao gồm đã xóa), User::onlyTrashed()->get() (chỉ đã xóa), $user->restore() (khôi phục), $user->forceDelete() (xóa vĩnh viễn).
Lợi ích: giữ dữ liệu để audit/phục hồi, hoàn tác xóa nhầm, tuân thủ quy định giữ bản ghi. Soft delete tăng độ an toàn dữ liệu.
Soft delete marks records as deleted without removing from database. Add to model: use SoftDeletes; and migration includes $table->softDeletes(); creating deleted_at column. Queries automatically exclude soft-deleted records: User::all() excludes deleted. Access with User::withTrashed()->get() (includes deleted), User::onlyTrashed()->get() (only deleted), $user->restore() (undelete), $user->forceDelete() (permanently remove).
Benefits: preserve data for auditing/recovery, undo accidental deletions, comply with regulations keeping records. Soft deletes improve data safety without permanent loss.