src/Services/TagService.php
public function getAllUnusedTags(): Collection
    {
        $tagTable = $this->getQualifiedTagTableName();
        $pivotTable = $this->getQualifiedPivotTableName();

        $sql = "SELECT t.*
            FROM {$tagTable} t
            LEFT JOIN {$pivotTable} tt ON tt.tag_id=t.tag_id
            WHERE tt.taggable_id IS NULL";

        return $this->tagModel::fromQuery($sql);
    }
public function getAllUnusedTags(): Collection
    {
        $tagTable = $this->getQualifiedTagTableName();
        $pivotTable = $this->getQualifiedPivotTableName();

        $sql = "SELECT t.*
            FROM {$tagTable} t
            LEFT JOIN {$pivotTable} tt ON tt.tag_id=t.tag_id
            WHERE tt.taggable_id IS NULL";

        return $this->tagModel::fromQuery($sql);
    }
Get all Tags that are unused by any model.

@return \Illuminate\Database\Eloquent\Collection