id = 1 состоит 2 пользователя, 1 и 3. Когда я делаю выборку чатов для 1, нужно что бы возле чата с id = 1 было имя пользователя 3.        Но "где валидировать данные" - это отдельная тема . . .
interface PostRepository
{
    public function save(Post $post): false|Post;
    public function update(Post $post): bool;
    public function delete(int $id): bool;
    
    public function getById(int $id): Post;
    public function getHeadersList(): PostCollection;
    public function getByAuthor(int $id): PostsCollection;
    public function getByDate(Date $date): PostsCollection;
} 
        getAllBrands пустой массив, выводиться таблица с 1 строкой No data.        
Я разделал на два шаблона, так как имеет значение, где было совпадение, в поддомене или tld. Поиск происходит в цикле, в паттерн подставляется код из списка. Сначала ищу в поддомене, после в tld.