private static function _handlePremiumAction(WebSoccer $website, DbConnection $db, I18n $i18n, $actionId, $creditsRequired, $validatedParams, $controllerName)
 {
     // check if user has enough credit
     if ($creditsRequired > $website->getUser()->premiumBalance) {
         $targetPage = $website->getConfig('premium_infopage');
         // redirect to external info page
         if (filter_var($targetPage, FILTER_VALIDATE_URL)) {
             header('location: ' . $targetPage);
             exit;
             // render info page
         } else {
             $website->addContextParameter('premium_balance_required', $creditsRequired);
             return $targetPage;
         }
     }
     // debit amount and execute action
     if ($website->getRequestParameter('premiumconfirmed')) {
         PremiumDataService::debitAmount($website, $db, $website->getUser()->id, $creditsRequired, $actionId);
         return self::_executeAction($website, $db, $i18n, $actionId, $controllerName, $validatedParams);
     }
     // redirect to confirmation page
     $website->addContextParameter('premium_balance_required', $creditsRequired);
     $website->addContextParameter('actionparameters', $validatedParams);
     $website->addContextParameter('actionid', $actionId);
     $website->addContextParameter('srcpage', $website->getPageId());
     return 'premium-confirm-action';
 }