whenNotEmpty($recursive = function ($collection) use (&$recursive) { if (is_array($collection)) { return $recursive(new static($collection)); } else if ($collection instanceof Collection) { $collection->transform(fn ($value, $key) => $collection->{$key} = $recursive($value)); } else if (is_object($collection)) { foreach ($collection as $k => &$v) { $collection->{$k} = $recursive($v); } } return $collection; }); }); } }