Writ of Mandamus. Essentially, you can sue USCIS for decision. If you hire a lawyer, get the one who can file WoM for you, otherwise a regular lawyer won't do much.
Also, before hiring lawyer and filing WoM, file FOIA, it's free. Ask for complete immigration file. When you get reply, it may contain hint why case is taking so long. Maybe case was already denied. Maybe there's suspected fraud etc. At least that will help to address any issues before you file WoM. WoM forces USCIS to make a decison. But what decision - approval or denial, it depends on USCIS and your case.