PSR's (PHP Standard Recommendation) são regras e sugestões que determinam como um código PHP deve ser desenvolvido. Ela aborda inúmeras características do código e permite que certos padrões sejam seguidos e facilita a sua "interoperabilidade".
São vários conjuntos numerados de regras, alguns "deprecados", outros ativos, alguns mais importantes, outros nem tanto.
A PSR-12, uma das mais importantes, em seu item 4.6 dita o seguinte:
4.6 abstract, final, and static
- When present, the abstract and final declarations MUST precede the visibility declaration.
- When present, the static declaration MUST come after the visibility declaration.
Uma boa extensão do VSCode se baseia no PHP CS Fixer pra organizar essas convenções enquanto você programa. É uma mão na roda, não apenas para esta, mas para diversas outros dúvidas do dia a dia.
Um detalhe me chamou atenção no seu snippet: você colocou chaves nas suas definições. Por se tratar de um método abstrato, ele não permite corpo (nem mesmo vazio). Então, isso não é permitido. O código final correto e ajustado à PSR-12 seria, portanto:
abstract class Foo
{
abstract protected function method();
}