Delete object from Core Data in ForEach List

Hi I put CoreData objects from one to many relationship in ForEach List and when I delete one item all objects from the List disappear. They come back after the view is reload.             List{

                ForEach(viewModel.allPayments){payment in

                    Text("(payment.amount)")

                }

                .onDelete { indexSet in

                    viewModel.delete(at: indexSet)

                }

            }

            .listStyle(.plain)

final class PaymentViewModel:ObservableObject{

    @Published var allPayments:[Payment] = []

    @Published var isNavigationLinkActive = false

    var loan: Loan

    init(loan: Loan) {

        self.loan = loan

    }

    

    func fetchAllPayments(){

        allPayments = PersistanceController.shared.fetchPayments(loan: loan)

    }

    

    func delete(at indexSet:IndexSet){

        guard let indeRow = indexSet.first else {return}

        PersistanceController.shared.delete(object: allPayments[indeRow])

        PersistanceController.shared.save()

    }

}

import CoreData

struct PersistanceController{

    static let shared = PersistanceController()

    let container = NSPersistentContainer(name: "Stash")

    init(){

        container.loadPersistentStores { description, error in

            if let error = error {

                print("Core Data loading error. (error.localizedDescription)")

            }

        }

    }

    var viewContext: NSManagedObjectContext{

        return container.viewContext

    }

    

    func save(){

        do{

            try viewContext.save()

        }catch{

            print("Core Data saving error. (error.localizedDescription)")

        }

    }

    

    func delete(object:NSManagedObject){

        viewContext.delete(object)

        save()

    }

    

    func fetchPayments(loan:Loan)->[Payment]{

        let request:NSFetchRequest = Payment.fetchRequest()

        request.predicate = NSPredicate(format: "loan == %@", loan)

        request.sortDescriptors = [NSSortDescriptor(keyPath: \Payment.date, ascending: true)]

        do{

           return try viewContext.fetch(request)

        }catch{

            print("Unable to fetchPayments")

            return []

        }

    }

}

Is there any way to delete object from Core Data in ForEach List without disappearing all object from the list?

Delete object from Core Data in ForEach List
 
 
Q