### Self composition of a function with symbolic variable

I have a function in one variable with a placeholder ~~variable, ~~variable,
and would like to find the nth iterate. For example, using:

$f(z) = z^3 + ~~az^2$, ~~a z^2$, a function in variable ~~z ~~$z$ with placeholder coefficient ~~a. ~~$a$.

then I would like to see

$f(f(z)) = ~~( z^3 ~~(z^3 + az^2)^3 + ~~a( z^3 ~~a(z^3 + az^2)^2$

However I am struggling to perform this in ~~sage.~~Sage.

~~$f(f)$ ~~`f(f)`

returns ~~$(a~~*z^2 *`(a*z^2 `

`+ `~~z^3)~~

`z^2 z^3)*z^2 + `~~z^3$
~~z^3

, so it substitutes for ~~a ~~$a$ instead of ~~z, ~~$z$,
and declaring ~~$f(f(z))$ ~~`f(f(z))`

returns the function only in terms of ~~z .~~$z$.

How can we self compose functions with a placeholder variable for a coefficient?