Immutably convert enum to string
It is possible to rename an enum entry, so the cast is not IMMUTABLE.

If you are sure that you will never rename enum values, write your own conversion function that uses a cast internally and label the function IMMUTABLE. Then PostgreSQL will trust that label, and it is up to you to fulfill the promise.