Where exactly are you trying to resolve the macro? Is it inside the admin UI or on the live site? If it is on the live site and you are using .NET Core, then you should be following this approach
Otherwise, since Kentico 10 for security reasons, macros are not evaluated/resolved recursively. You can try using the "recursive" macro parameter. If true, the system resolves macro expressions contained in the macro’s result recursively.