Found a solution that closes my question:
@Stable
val Arrangement.LastItemBottomArrangement: Arrangement.Vertical
get() = object : Arrangement.Vertical {
override fun Density.arrange(
totalSize: Int,
sizes: IntArray,
outPositions: IntArray,
) {
var currentOffset = 0
sizes.forEachIndexed { index, size ->
if (index == sizes.lastIndex) {
outPositions[index] = totalSize - size
} else {
outPositions[index] = currentOffset
currentOffset += size
}
}
}
}
LazyColumn(
modifier = modifier
.fillMaxSize(),
verticalArrangement = Arrangement.LastItemBottomArrangement,
)