@earmsby If you want several foreign keys pointing to different tables, then you need to give each column a distinct name, but then explicitly specify the table you’re referencing:
$table->foreignId('composer_id')->constrained('authors');
$table->foreignId('arranger_id')->constrained('authors');
$table->foreignId('editor_id')->constrained('authors');
$table->foreignId('text_author_id')->constrained('authors');
However, I don‘t really know what domain your application is in, but this might be better modelled as a many-to-many table between your “library items” and authors, where you can attach many authors to a library item but specify the role in your pivot table. This way, you can have as many attached authors, and roles, as you would like, without needing to change your database schema in the future (i.e. if for some reason you needed to support multiple arrangers for a library item).