public function scopeWithAllWidgets(Builder $query, $widgets, string $column = 'id'): Builder
    {
        $widgets = static::isWidgetsStringBased($widgets)
            ? $widgets : static::hydrateWidgets($widgets)->pluck($column);

        collect($widgets)->each(function ($widget) use ($query, $column) {
            $query->whereHas('widgets', function (Builder $query) use ($widget, $column) {
                return $query->where($column, $widget);
            });
        });

        return $query;
    }