Bom dia Uilan, espero que esteja bem
Utilizar o padrão de projeto repositório visa exatamente tirar a responsabilidade do Model precisar saber como interagir no banco de dados.
Digamos que temos a nossa aplicação de petshop funcionando com um banco de dados chamado BanquinhoDB, mas esse banco de dados para de receber atualizações e suporte e temos que mudar para outro banco.
Seria ideal que tivéssemos a menor quantidade de arquivo que fosse necessário trocar, além de que todas as regras do petshop de agendar, cobrar, cadastrar pessoas e pets, cancelar ou trocar datas de agendamento, pedir extorno e etc são as mesmas independente do BanquinhoDB.
Então assim, o nosso model deve saber apenas das chamadas regras de negócio, ou seja, informações sobre o problema a ser tratado em si. E o nosso Repositório quem se encarrega de buscar e tratar esses dados para que o Controller use e envie o que ache importante para o Model.
Espero ter esclarecido a dúvida, qualquer nos dê um retorno. Bons estudos!