Diferença entre requerer e instalar vs criar-projetar no compositor

Não entendo como o create-project funciona no compositor. Vamos dar Laravel como exemplo.

Posso instalar esta estrutura PHP com o seguinte comando:

 composer create-project laravel/laravel --prefer-dist 

Este comando instala a estrutura para me deixar com uma pequena pasta na raiz do meu diretório:

  • aplicativo
  • bootstrap
  • público
  • fornecedor

Além disso, alguns arquivos.

Mas quando eu simplesmente uso o seguinte comando do compositor:

 composer require laravel/laravel --prefer-dist composer install 

Então, isso apenas instala a pasta do vendor . Nenhum outro arquivo e pasta são baixados pelo compositor.

Por quê? O que é tão diferente? Como o compositor sabe quais outros arquivos obter quando eu uso o comando create-project laravel/laravel e por que eu só recebo a pasta do vendor quando eu require laravel/laravel ?