public static function lazyRelatedOperation(array $kwargs)
    {
        /** @var $scopeModel Model */
        $callback = ArrayHelper::pop($kwargs, 'callable');
        $scopeModel = ArrayHelper::pop($kwargs, 'scopeModel');
        $relModel = ArrayHelper::pop($kwargs, 'relatedModel');

        $relModel = self::resolveRelation($scopeModel, $relModel);

        $relModels = (array) $relModel;

        $modelsToResolve = [];
        foreach ($relModels as $relM) {
            if (is_string($relM)) {
                $modelsToResolve[] = $relM;
            } elseif ($relM instanceof Model) {
                $modelsToResolve[] = $relM->getMeta()->getNSModelName();
            }
        }

        $kwargs['scopeModel'] = $scopeModel;
        $scopeModel->getMeta()->getRegistry()
            ->lazyModelOps($callback, $modelsToResolve, $kwargs);
    }