Breaking cyclic dependencies using the Dependency inversion Principle

In Robert Martin's book "Pure Architecture" it is written:

There are two methods to break the cyclic dependency:

  1. Apply the Dependency Inversion Principle (DIP) . In this case, as shown in Figure 14.3, you could create an interface that defines the methods needed by the User class, then put this interface in Entities and inherit it in the Authorizer . This would reverse dependency between Entities and Authorizer and broke the cycle . 14.3

But this does not get rid of the cyclical dependence, because instead:

public Entities(Authorizer auth){
      /* some code */
}

We get this:

public Entities(Permission perm) {
      /* some code */
}

But we will still pass the implementation to the constructor, i.e. Authorizer, which needs Entities inside, and nothing will change, the problem will not go away, what am I wrong about?

Author: kaylil_01, 2020-10-11