I had this problem that when my laptop booted up, no networking was available. It turned out that iwd was started before the interface `wlp2s0` was ready and never detected it afterwards. Restarting iwd every time was annoying so I went to look for a solution.
I found one here.
I added two lines in a systemd override file (`systemctl edit iwd`):
After this changes, networking is available on boot.