Проблема заключается в том, что вы используете указатель на интерфейс в структуре `Service`. В вашем коде `Repository` объявлен как `*Repo`, что является указателем на интерфейс, в то время как на самом деле вам нужно использовать интерфейс напрямую.
Вот исправленная версия вашего кода:
```go
type Repo interface {
Create(data interface{}) interface{}
}
type Service struct {
Repository Repo // Измените здесь на Repo, а не *Repo
}
type User struct {
Name string
}
func (r *Service) Do(user User) {
r.Repository.Create(user)
}
```
Теперь, когда `Repository` объявлен как `Repo` (интерфейс, а не указатель на интерфейс), метод `Create` будет доступен через `r.Repository`.
Интерфейсы в Go могут быть использованы непосредственно, и в большинстве случаев вы не должны использовать указатели на интерфейсы. На практике, когда у вас есть интерфейс, вам нужно просто хранить его как значение, а не как указатель, чтобы методы интерфейса были доступны.