Software Serial and SPI

Even better: use AltSoftSerial on pins 8 & 9.

SoftwareSerial is very inefficient, because it disables interrupts for long periods of time. This can interfere with other parts of your sketch or other libraries, or prevent reading from Serial.

AltSoftSerial is very efficient and can transmit and receive at the same time, unlike SoftwareSerial.

If you really can't switch to those pins (are you sure?), you should try my NeoSWSerial. It's almost as good as AltSoftSerial, and still much better than SoftwareSerial. It can also transmit and receive at the same time.

Both libraries are available from the IDE Library Manager, under the menu Sketch -> Include Library -> Manage Libraries. Using them may require changing the serial port type used inside the GSM library.