def METHOD_NAME(self, indicator, positions, chunk, additional=None):
    if additional is None:
        additional = {}
    if self.distribute._has_mdistr() or indicator.use_morphologies():
        try:
            morphologies, rotations = self.distribute._specials(
                self.partitions, indicator, positions
            )
        except EmptySelectionError as e:
            selectors = ", ".join(f"{s}" for s in e.selectors)
            raise DistributorError(
                "%property% distribution of `%strategy.name%` couldn't find any"
                + f" morphologies with the following selector(s): {selectors}",
                "Morphology",
                self,
            ) from None
    elif self.distribute._has_rdistr():
        rotations = self.distribute(
            "rotations", self.partitions, indicator, positions
        )
        morphologies = None
    else:
        morphologies, rotations = None, None
    distr = self.distribute._curry(self.partitions, indicator, positions)
    additional.update(
        {prop: distr(prop) for prop in self.distribute.properties.keys()}
    )
    self.scaffold.METHOD_NAME(
        indicator.cell_type,
        positions=positions,
        rotations=rotations,
        morphologies=morphologies,
        additional=additional,
        chunk=chunk,
    )