protected function applyLocaleRestriction($query, $locale = null, $allowFallback = true)
    {
        $localeKey = $this->getLocaleKey();
        $locale    = $locale ?: app()->getLocale();
        $fallback  = $this->getFallbackLocale();

        if ($allowFallback && $fallback && $fallback != $locale) {

            $query->where(function ($query) use ($localeKey, $locale, $fallback) {
                $query
                    ->where($localeKey, $locale)
                    ->orWhere($localeKey, $fallback);
            });

            return;
        }

        $query->where($localeKey, $locale);
    }