public function href($routeName = '', $customAttributes = [])
    {
        if(!$routeName) {
            $routeName = 'user.single';
        }
        $getRoute = Route::getRoutes()->getByName($routeName);
        if($getRoute) {
            $routeParams = Route::getRoutes()->getByName($routeName)->parameterNames();

            // translating language
            if($this->getTranslateLanguage()) {
                $languageSlug = $this->getTranslateLanguage();
            }
            else{
                $languageSlug = App::getLocale();
            }

            //set only requested params
            $params = [];
            foreach($routeParams as $name){
                switch ($name){
                case 'authorSlug';
                    $params['authorSlug'] = $this->slug;
                    break;

                case 'lang';
                    // don't show language slug on default language
                    if(config('project.hideDefaultLanguageInURL') && $languageSlug !=  Language::getDefault('slug')) {
                        $params['lang'] = $languageSlug;
                    }
                    break;
                }
            }

            if($customAttributes) {
                $params = array_merge($customAttributes, $params);
            }

            return route($routeName, $params);
        }else{
            throw new \Exception("Route $routeName not found");
        }

    }