InvalidObjectException: Specified port is not open.

Hi. I am trying to recieve serial data from an Arduino Uno and display it in a TextMeshPro element. However, upon running my program I get the error in this post’s title. Does anyone know why this is happening?
Code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using System.IO.Ports;

public class Clock : MonoBehaviour
{
    SerialPort stream = new SerialPort("COM5", 19200);
    public string recievedString;
    public TMP_Text words;
    int buttonState = 0;

    void Start()
    {
        stream.Open();
    }
    // Update is called once per frame
    void Update() {
        string value = stream.ReadLine();
        buttonState = int.Parse(value);
        words.text = buttonState.ToString();
    }
}

Arduino Code:

int button = 13;
int buttonState;

void setup() {
  // put your setup code here, to run once:
  pinMode(button, INPUT);
  Serial.begin(19200);
}

void loop() {
  // put your main code here, to run repeatedly:
  buttonState = digitalRead(button);

  if (buttonState == 1) {
    Serial.flush();
    Serial.println("hello ");
    delay(200);
  }
}

Well, COM5 is probably the wrong port as it was not opened

I’ve seen people use something called Uduino as a driver, and it has a button ‘Discover ports’.
So it must be something you ought to discover, not just blindly poke. But I’m not an expert.