public function descendants(Individual $individual, int $generations): Collection
    {
        $descendants = new Collection([$individual]);

        if ($generations > 0) {
            foreach ($individual->spouseFamilies() as $family) {
                foreach ($family->children() as $child) {
                    $descendants = $descendants->merge($this->descendants($child, $generations - 1));
                }
            }
        }

        return $descendants;
    }