public function queueRelations(ContextualCommandInterface $parent): ContextualCommandInterface
    {
        if (empty($this->relations)) {
            //No relations exists, nothing to do
            return $parent;
        }

        //We have to execute multiple commands at once
        $transaction = new TransactionalCommand();

        foreach ($this->leadingRelations() as $relation) {
            //Generating commands needed to save given relation prior to parent command
            if ($relation->isLoaded()) {
                $transaction->addCommand($relation->queueCommands($parent));
            }
        }

        //Parent model save operations (true state that this is leading/primary command)
        $transaction->addCommand($parent, true);

        foreach ($this->dependedRelations() as $relation) {
            //Generating commands needed to save relations after parent command being executed
            if ($relation->isLoaded()) {
                $transaction->addCommand($relation->queueCommands($parent));
            }
        }

        return $transaction;
    }