He has never played for France, why wouldn't he be allowed to play for Spain?
Hmm, it's a weird new rule. Apparently a player is locked to a nation if he plays an official game past the age of 21, even if it's U21 or U23. In many U21 tournaments there are usually 22 year olds playing, which has been the case of Borna Sosa.
Laporte played for U21 but never as a 22 year old. He played his last U21 game at age of 21 on 24 March. He turns 22 in May so the rule doesn't apply to him. Seems a bit unfair to those born early in the year.