Self referencing has many/many to many using path enumeration?

I am using postgres and lets say I have a schema User that self references the same schema.

With the new postgrex, I was not able to make an ltree. I don’t remember the warning exactly.
I would like to know if a %User{} can have many Users and Users could recursively have many more using ltree.

The data may need to be read many items. I could cache it.
On some User record update, I could reload and cache the data.

So is path enumeration more efficient? If I define it using ltree, I would still need to load recursively, the whole records per record to load all the attributes right? If that is the case, wouldn’t a self referencing many to many would do? Also, loading recursively adds to the overhead and is a DB intensive task.

I would like to know how to go about this using ltrees as well as feedback on if storing and loading it using many to many/has_many is more efficient?

Does this look like a better alternative?