Cannot convert value of type to closure result type 'any StandardPredicateExpression<Bool>'

Hi, I have issue when I use swift data in development and I'm beginner. I have two basic classes.

@Model
class User{
  @Attribute(.unique) var id: UUID;
  var account: String;
  var password: String;
  var name: String;
  var role: Role
  @Relationship(inverse: \Transaction.tranInitiator)
  var transcations = [Transaction]()

  init(account: String, password: String, name: String, role: Role) {
    self.id = UUID()
    self.account = account
    self.password = password
    self.name = name
    self.role = role
  }
}
//
@Model
class Transaction{
  @Attribute(.unique) var tranId: UUID;
  var tranName: String;
  var tranCash: Float;
  var tranDate: Date;
  @Relationship var tranInitiator: User;
// init block
  }
}

and when I am going to fetch items I use predictor like

let predictor = #Predicate<Transaction>{ tran in
      tran.tranInitiator == user
    }
    fetchDescriptorTrans = FetchDescriptor(predicate: predictor)
    let transList = try? contextTransaction?.fetch(fetchDescriptorTrans)
    if(transList!.isEmpty){return []}
    else{
      return transList!
    }

compiler shows error

Cannot convert value of type 'PredicateExpressions.Equal<PredicateExpressions.KeyPath<PredicateExpressions.Variable<Transaction>, User>, PredicateExpressions.Value<User>>' to closure result type 'any StandardPredicateExpression<Bool>'

I don't know why

As read here, you cannot reference a model object inside of a Predicate. So if you wanted to filter for a User model, you could by using its id outside of the Predicate like such:

let userId = uder.id
#Predicate<Transaction>{ tran in
  tran.tranInitiator.id == userId
}
Cannot convert value of type to closure result type 'any StandardPredicateExpression&lt;Bool&gt;'
 
 
Q