Are there any examples of domain objects, but uses lazy resolution?

I want to create a nested DSL through a gradle plugin, and was hoping to access it via lazy configuration.

All the examples I can find try to access these objects either in after evaluate or in a task.
For example, https://blog.mrhaki.com/2016/02/gradle-goodness-create-objects-with-dsl.html

Does anyone know of any examples that can do this through the lazy configuration?
Can we do this in the first place? Is there something different we have to do for a nested DSL?